Тенденции развития методов и средств автоматизации проектирования встроенных цифровых систем по материалам DATE 2001 Долинский М.С. Гомельский государственный университет им.Ф.Скорины dolinsky@gsu.unibel.by http://nit.gsu.unibel.by В статье дается обзор материалов, представленных на конференции и выставке "Design, Automation and Test in Europe (DATE 2001)", которая состоялась 13-16 марта 2001 года в городе Мюнхен (Германия). Характеризуются выявленные тенденции развития средств автоматизации. Введение Ежегодно проводимая в Европе конференция DATE является одной из самых престижных в мире конференций по автоматизации проектирования электронных систем и, поэтому, она собирает наиболее интересные результаты представляемые, в основном, европейскими исследователями. Анализ материалов конференции дает богатую пищу для размышлений, часть из которых и представлена в данной статье. Прежде всего, в материалах конференции отмечается постоянное расширение сферы применения встроенных цифровых ситем, вызванное успехами микроэлектроники. G.Matheron, один из руководителей проекта MEDEA, в частности, указывает: "К 2015 году микроэлектронная индустрия будет производить 10 миллионов транзисторов на человека каждый день и будут приложения, использующие их"[1]. По материалам DATE 2001, наиболее перспективными направлениями являются автомобильная промышленность, телекоммуникационные системы, игровые приставки. В области применяемых аппаратных средств в качестве перспективных направлений отмечаются встроенная в SOC-системы реконфигурируемость, использование программируемых платформ, активный обмен IP-компонентами, мультипроцессорные SOC-системы. В области системного программного обеспечения создаются универсальные, настраиваемые на целевую архитектуру, симуляторы, линкеры, компиляторы и средства отладки прикладного программного обеспечения. Огромное внимание на конференции DATE 2001 было уделено средствам верификации и отладки проектов. И это неудивительно, поскольку в одном из докладов [32], в частности, приводится такой факт: "Часто более 70% времени разработки затрачивается на поиск и исправление ошибок в проекте". Пытаясь как-то классифицировать множество этих докладов, можно выделить следующие направления: - высокоуровневое описание проектов и автоматическое его разбиение на аппаратное и програмное обеспечение; - симуляция проектов, совместная симуляция программного и аппаратного обеспечения, симуляция мультипроцессорных систем, использование SystemC и других языков для симуляции проектов; - разработка проектов, оптимизированных по потреблению энергии; - тестирование, самотестирование и встроенное тестирование. Далее в статье приводится более подробное описание материалов конференции в соответствии с построенной классификацией. 1. Сферы использования встроенных цифровых систем 1.1. Автомобильная промышленность В [2] отмечается, что имеется потребность во взаимосвязанных электронных устройствах, способных обрабатывать и разделять информацию об автомобиле, водителе, среде и других источниках информации. Это потребует специальных программных и аппаратных средств, обеспечивающих, в частности, полную совместную симуляцию программного и аппаратного обеспечения сети микроконтроллеров на борту автомобиля." В [3] представляются подходы к созданию архитектуры таких электронных систем, которая поддержит вертикальную функциональную ориентацию, а также аспекты горизонтальной интеграции таких систем. При разработке учтены типичные требования системного интегратора электронных систем автомобиля, такие как независимсть программного и аппаратного обеспечения, сетевое взаимодействие, возможность разделения управления, наблюдения и поведения. В [4] вводится язык разработки архитектуры AIL (Architecture Implementation Language), который обеспечивает внутреннее представление архитектуры и связывает с инструментальными средствами для конструирования, планирования, верификации и документирования архитектуры. Цель AIL - описывать архитектуру автомобиля от уровня желаемых сервисов до уровня физического исполнения. 1.2. Сетевые процессоры Сетевым процессорам было посвящено специальное заседание [5], которое обсуждало вопросы их архитектуры, встроенного программного обеспечения для них, рыночных перспектив. 1.3. Игровые процессоры Процессоры для игровых приставок должны выполнять 3D-графические вычисления, особенно геометрические и перспективные преобразования. В процессоре PlayStationR2 [6] разработчики ввели новый блок для синтеза эмоций, который назвали Emotion Synthesis и новую процессорную архитектуру, которая поддержала все требования. Эта архитектура включает векторные устройства для выполнения операций с плавающей точкой. Перед авторами стояла задача синтеза в реальном времени компьютерной графики анимационной сцены, которая обеспечит максимальную достоверность. Например, если в сцене видеоигры появляется женщина, ее движение должно определяться решением физических уравнений, в ответ на интерактивные события, а не воспроизведением ранее записанных данных. Более того, дифференциальные уравнения с большим числом переменных должны использоваться что бы описать, например, волновые движения ее волос под воздействием ветра. Для достижения достоверности CPU должен выполнять все эти вычисления в реальном времени. "Emotion Engine" ("EE") - это системная БИС, включающая 300MHz 128-битный 2-конвейерный суперскалярный RISC процессор, два векторных устройства, IPU (Image Processing Unit) для декодирования потока MPEG-2, 10-канальный контроллер прямого доступа к памяти, 2-канальный контроллер памяти и другие периферийные устройства. 13.5 миллионов транзисторов интегрированы на кристалле размером 15*15 мм2 по технологии 0.18 мк. Комбинация симуляции, эмуляции и функциональной верификации обеспечили требуемый результат. В работе [7] представлена видео-игровая приставка Nintendo GameCube, которая, по мнению автора, спроектирована так, что бы превзойти все другие такие системы к моменту ее выпуска. Известная ранее под названием Dolphin, эта система включает процессор Power PC от IBM и специализированное аппаратное обеспечение, встроенное в чип ATI Flipper, который является центральной частью проекта Dolphin. Flipper выполняет такие функции, как графический процессор, аудио-процессор, хост-контроллер, контроллер памяти и процессор ввода-вывода в системе Dolphin. Такой сложный чип требует очень надежного потока проектирования, для того, что бы получить работающий образец в минимально возможное время. В статье [7] автор описывает данный поток проекта, созданный инженерами ATI для создания проекта Flipper. В работе [8] представлен SH-4 - двух конвейерный суперскалярный 32-битный RISC микропроцессор для игровой приставки Dreamсast фирмы SEGA. Для того, что бы повысить производительность операций с плавающей точкой, разработаны графические инструкции и специальный графический FPU. Достигнута производительность 360 VAX MIPS, 6.0M Polygons/sec, 1.4G FLOPS (пиковая) на частоте 200 MHz. 2. Аппаратные средства 2.1. Встроенная конфигурируемость Специальная секция [9] быда посвящена обсуждению вопросов: в чем важность встроенной в чип реконфигурируемости и как она достигается. В качестве привлекательных возможностей отмечены: - расширение и увеличение разнообразия продуктов семейства - увеличение длительности их жизненного цикла - сокращение времени выхода продукта на рынок - гибкость и повторное использование - сокращение дорогих повторных изготовлений чипов. В работе [10] прогнозируется введение новой парадигмы проектирования - замена CAD компиляцией. Исследование [11] анализирует роль динамически реконфигурируемой логики в SOC-проекте. В частности изучаются накладные расходы на сохранение и загрузку битов конфигурации для различных частей приложения в динамически реконфигурируемом сопроцессоре. Для SOC-проектов битовые потоки конфигураций предпочтительнее сохранять на самом чипе, вследствие чего становится важным сокращать накладные расходы на хранение. Кроме того, сокращение времени реконфигурации приводит к повышению производительности. Это исследование обеспечивает рассмотрение гранулярности реконфигурируемой логики, соответствующей содержаиню SOC. Авторы начали с SOC для мультимедиа и систем телекоммуникации. Вначале они представляют результаты профилирования при использовании инфраструктуры компилятора MESCAL. Эти результаты используются, что бы создать шаблон архитектуры, которая состоит из динамически реконфигурируемых путей обработки данных с использованием крупных логических блоков (coarse grain) и реконфигурируемой сети связи между ними. Затем они описывают поток проектирования от разработки приложения, находят главные циклы с помошью профилирования и затем отображают приложение с использованием динамически реконфигурируемых путей данных и простейшей сети связи. Как часть этого потока, они разработали алгоритм отображения, который минимизирует размер сети связи, и, как следствие, накладные расходы на реконфигурацию, что существенно для SOC. Приводятся некоторые начальные результаты апробации такого подхода. 2.2. Программируемые платформы Эта специальная сессия [12] собрала вместе ведущих экспертов, представляющих организации из области телекомуникаций и SOC- проектирования. Секция обсудила традиции в платформенно- ориентированном проектировании, где новые продукты базируются на ре-программируемости и ре-конфигурируемости устройств более общего назначения. Отмечена потребность в гибкости для телекоммуникаций и производительности для беспроводных систем третьего поколения. Интересный вопрос (Standard Bus vs. Bus Wrapper) обсуждается в работе [13]. Огромное количество компаний продвигают свои "on-chip" шины как потенциальные стандарты для SOC-индустрии. Рабочая группа VSIA (VSIA's On-Chip Bus Development Working Group) предложила разработать стандартный Bus Wrapper (VCI - Virtual Component Interface) в противовес утверждению единой шины как стандартной. Адвокаты стандартной шины говорят, что Bus Wrapper приводит к уменьшению производительности и дополнительным расходам площади на кристалле. Адвокаты Bus Wrapper утверждают, что не может быть единой шины, эффективной для всех SOC-проектов. Будет ли введена единая шина, а если нет, то будет ли введен стандартный Bus Wrapper? Какой подход правилен для интеграции SOC в будущем? Интересный ответ на поставленные вопросы предлагается в работе [14]. Аннотированные типы данных (Annotated Data Types) доказали, что они являются практичной формой описаний интерфейсов SOC-компонент с произвольно адресуемой шиной. Центральная идея в этом новом подходе - определить интерфейс компонента с произвольно адресуемой шиной в терминах структур данных, которые она представляет этой шине. Эта структура данных моделируется с использованием системы типов аналогично тому, как это делается в C или VHDL. Эта структура данных аннотируется с помощью специальной информации, соответствующей целям описания аппаратного обеспечения. В [14] описывается также необходимая терминология, среда и метод для синтеза функциональной компоненты для адаптации аппаратных компонент. Несколько работ посвящены конкретным разработкам в области аппаратного обеспечения. Криптографические приложения во встроенных системах для смарт-карт требуют малой задержки, малой сложности и малого потребления энергии соответствующего аппаратного обеспечения. В работе [15] алгоритм GBB для умножения в конечных полях оптимизирован рекодированием, разработана архитектура необходимого "последовательно-по-цифрам" умножителя в виде БИС. В работе [16] приведен метод работы с операциями в статически определенных VLIW процессорах. Но допускаются функциональные единицы, управляемые контроллером, который следует своим состояниям заранее предопределенным образом. Это делает возможным исполнение им функции, которая содержит условную конструкцию, такую как IF, как единую операцию на функциональной единице. Таким образом сокращаются накладные расходы на выполнение инструкций условного перехода и выбора. Такие устройства авторы называютт CIU (Conditional Input/output Units). А операции, исполняемые на CIU называют CIO (Conditional Input/output Operations). 3. Средства разработки системного программного обеспечения В работе [17] представляется методологию автоматической генерации качественных средств разработки программного обеспечения для программируемых архитектур, с использованием языка описания архитектуры LISA. Самые различные архитектуры описываются с помощью этого языка, после чего автоматически генерируются симулятор, ассемблер, линкер и графический отладчик. Подход иллюстрируется применением к процессорам Texas Instruments 'C62x и 'C54x, Analog Device ADSP2101 и ARM7. PRMDL [18] - это формат центрального файла описания процессора, который содержит параметры полной настраиваемой среды компиляции и симуляции. Формат выделяет программые и аппаратные образы процессора и определяет широкий диапазон настраиваемости среды, обеспечивая проектирование платформенно-ориентированных процессоров и широкое исследование проектного пространства для VLIW архитектур. В работе [19] предлагается метод автоматической генерации прикладной ОС и автоматической настройки на целевую архитектуру прикладного программного обеспечения. Современные встроенные системы исполняются из многочисленных взаимосвязанных разнородных устройств. Эти устройства сильно разнятся по функциональности, производительности и интерфейсам. Поэтому достаточно трудно строить приложения для таких платформ. В работе [20] представляются некоторые методы привнесения основанных на компоненах методологий в совместное проектирование программного и аппаратного обеспечения. Авторами сделан специальный упор на использование простых, гомогенных интерфейсов, что бы скрыть сложность присущую современным проектам. Ключевой шаг - разработка операционной системы, которая делает доступными простым и однородным путем ресурсы системы для разработчиков прикладных задач. Это сильно упрощает задачу проектирования сложных, гетерогенных встроенных систем. 4. Средства совместной разработки и верификации аппаратного и программного обеспечения SOC-систем. 4.1. Использование SystemC SystemC - это новая библиотека с открытыми исходными C++ текстами для разработки поцикловых или более абстрактных моделей алгоритмов программного обеспечения, архитектуры аппаратного обеспечения и системного проектирования. SystemC предназначена стать платформой моделирования, обеспечивающей бесшовную интеграцию остальных инструментальных средств. Цель работы [21] - оценить возможности связывания внешнего программного обеспечения с SystemC без модификации исходных текстов SystemC, для примера - связывание разрабатываемого авторами[21] GUI (Graphics User Interface). Статья [22] представляет среду синтеза и соответствующую методологию синтеза, основанную на традиционных методах компиляции, которая включает SystemC, VHDL и Verilog, что бы преобразовать имеющеся программно-алгоритмические модели в синтезируемое описание аппаратного обеспечения. Экспериментальные результаты показывают, что следование такому подходу вносит повторное использование программных компонент в мир аппаратного обеспечения, что сокращает время выхода разработок на рынок. В статье [23] представлены расширение SystemC для моделирования многоуровневых коммуникаций и методология проектирования системы, основанная на интерфейсах. SystemC SV обеспечивает новую единицу проекта - интерфейс, которая обеспечивает спецификацию, проектирование и верификацию внешнего взаимодействия системы отдельно от ее функциональности, привнося таким образом новое качество проектирования систем с использованием SystemC. Концепция и вычислительная модель интерфейсов SystemC SV представлены вместе с примером проектирования цифровой части системы чтения-записи транспондера смарт-карты. В работе [24] представлено объемное, но систематическое определение семантики SystemC, которое покрывает метод, "нити" и "тактируемые нити", а также их взаимодействие с процессом ядра симуляции. Семантика включает в себя операторы наблюдения, назначение сигналов, операторы ожидания, как они определены в SystemC. Определения представляются в форме правил для ASM (Abstract State Machines), отражающих информацию, представленную в SystemC User's Manual. Авторы полагают, что такая формальная семантика представляет лаконичную точную высокоуровневую спецификацию SystemC и может быть удобна для стандартизации. Ее можно также испльзовать для исследования возможности взаимодействия SystemC и VHDL/Verilog. Поднятие уровня абстракции описания проекта - это известный принятый метод борьбы со сложностью и сокращения времени проектирования современных встроенных систем. Показано[25], что абстракции для коммуникаций также важны, как и абстракции поведения на системном уровне абстракции. Исследуются возможности UML (Universal Modeling Language) для создания новых более высокоуровневых механизмов коммуникации для описания комплексных ассоциаций между объектами. Коммуникативные примитивы были разработаны как расширения SystemC. Приводится полный пример разработки от UML спецификаций через функциональную спецификацию к исполняемому SystemC описанию. Интересным подведением итогов для докладов, базирующихся на SystemC стала дискуссия [26]. Отсутствие общей методологии и нотации указано как одно из важнейших препятствий, останавливающих разработчиков SOC. Тем не менее, еще не до конца определено, что означает SLD (System Level Design) и какой SLDL (System Level Design Language) является наиболее подходящим. Наибольший интерес вызывает сейчас совместное проектирование программного и аппаратного обеспечения. В настоящее время в качестве SLDL широко используется язык C. Многие люди пытаются использовать подмножество языка C, а другие вводят классы C++, соответствующие концепциям HDL языков типа VHDL/Verilog. C/C++ стал также наиболее популярной основой для расширения с целью создания языка спецификациии и проектирования систем. Однако на этом пути еще множество препятствий и нерешенных проблем. 4.2. Другие языки и средства симуляции Что бы выжить, необходимо ускорить процесс верификации - заявляют авторы [27]. Один из способов - параллелизация поцикловой симуляции RTL- (Register Transfer Level) и GL- (Gate Level) описаний. В работе [27] вводится dlbSIM - параллельный симулятор. dlbSIM быд успешно использован при симуляции процессоров IBM S/390. RTL-абстракция установлена как индустриальный стандарт для проектирования ASIC, обмена "soft-IP" компонентами и интерфейс нижнего уровня для проектирования чипов на более высоком уровне абстракции. По мнению авторов работы [28], "синтезируемый" VHDL/ Verilog в качестве RTL-абстракции имеет определенные проблемы, которые препятствую эффективному использованию. Например, конфуз при использовании семантики симуляции для целей синтеза, отсутствие возможности использовать компоненты на уровне "протокола", и отсутствие абстракции памяти. После детального обсуждения этих проблем, данная статья предлагает новую абстракцию - MetaRTL, которая может быть разработана сооответствующим расширением традиционных императивных языков программирования. Продуктивность предлагаемого подхода демонстрируется описанием системы синтеза MetaSyn. Эксперименты на наборе тестов показывают, что MetaRTL более выразителен, чем "синтезируемые" HDL-описания, при сохранении синтезируемости. В работе [29] представляется компилятор, который обрабатывает высокоуровневые алгоритмы обработки сигналов и образов, описанные в MATLAB и генерирует оптимизированное аппаратное обеспечение для FPGA с внешней памятью. Предлагается алгоритм точного анализа, определяющий минимальное количество битов, требуемых для целых переменных, комбинированный алгоритм для анализа точности и ошибок, для подсчета минимального количества битов, требуемых для вещественных переменных. Приведенные результаты показывают, что в среднем, эти алгоритмы генерируют аппаратное обеспечение, которому требуется в 5 раз меньше ресурсов FPGA в терминах CLB (Configurable Logic Blocks) по сравнению с аппаратным обеспечением, сгенерированным без этих оптимизаций. Показывается, что анализ обеспечивает сокращение рзамеров таблиц поиска (lookup tables) для таких функций как SIN, COS, SQRT, EXP и т.д. Предлагаемый анализ точности позволяет упаковывать различные элементы массива в одно место в памяти, что бы сократить количество обращений к внешней памяти. Показывается, что такой подход повышает производительность сгенерированного аппаратного обеспечения на 35%. В работе [30] предлагается метод улучшения производительности совместной симуляции мультипроцессорных систем сокращением времени синхронизации между различными симуляторами. Что бы сократить количество синхронизаций, предсказывается время синхронизации, основываясь на статическом анализе прикладного ПО, исполняемого на каждом процессоре. В экспериментах с реальными встроенными системами получено повышение производительности симуляции на порядки. Авторы работы [31] представляют новую среду совместной симуляции программного и аппаратного обеспечения, которая обеспечивает быстрое прототипирование SOC-проектов. Со стороны программного обеспечения, язык описания процессоров LISA обеспечивает генерацию bit-true моделей программируемых архитектур на различных уровнях от уровня инструкций до их выполнения с точностью до фаз. Основываясь на этих моделях, можно сгенерировать автоматически полный комплект отладки, включающий симулятор процессора, ассемблер, линкер, HLL-компилятор, а также интерфейс для ко-симуляции. Со стороны аппаратного обеспечения, используется SystemC - библиотека классов симуляции, в которую добавлен общий интерфейс совместной симуляции, который обеспечивает соединение моделей программного и аппаратного обеспечения на различных уровнях абстракции. Кроме того, в работе [31] представляется стратегия моделирования аппаратного обеспечения с использованием C++ процессов, основанных на абстрактном макро-цикле, которая повышает эффективность моделирования и скорость симуляции. Верификация цифровых проектов, то есть аппаратных или встроенных аппаратно-программных систем, есть важная задача в процессе проектирования. Часто более 70% времени разработки затрачивается на поиск и исправление ошибок в проекте. Поэтому уже предложено много методов поддержания процесса отладки. В последнее время, методы симуляции и тестирования дополнены формальными методами, такими как проверка эквивалентности и проверка свойств. Однако их применение в индустрии в настоящее время ограничено проектами малых и средних размеров или специфической фазой проекта. В работе [32] авторы представляют метод верификации динамических свойств, описанных на исполняемом языке. Этот метод позволяет пользователю описать свойства системы на языке FLTL (Finite Linear time Temporal Logic). Эти свойства транслируются в специальный вид конечных автоматов, которые затем эффективно проверяются "на лету" во время каждого процесса симуляции. Свойства могут быть размещены в любом месте описания системы, о нарушении свойств во время симуляции немедленно сообщается проектировщику. 4.3. Новые методологии проектирования В статье [33] представляется новый подход к проектированию прикладных мультипроцессорных систем. Этот подход базируется на обобщенной модели архитектуры, которая используется как шаблон в процессе проектирования. Ключевая характеристика этой модели - высокая сепень ее модульности, гибкости и масштабируемости, что делает возможным ее повторное использование для широкого класса применений. Это позволяет также ускорить цикл разработки. Статья определяет модель такой архитектуры, систематизирует процесс проектирования, который может быть автоматизирован. Достоинства подхода иллюстрируются двумя существенными демонстрационными примерами. Статья [34] представляет новую методологию проектирования параллельных динамических встроенных систем реального времени. Встроенная система может быть специфицирована на уровне абстракции "cерый ящик" в модели MTG-CDFG. Модель "серый ящик" отличается от модели "белый ящик", где все операции рассматриваются во время отображения и где представлено слишком много информации, что бы можно было провести широкое исследование системы, и "черный ящик", где информации недостаточно, что бы аккуратно управлять даже наиболее критичным ресурсом - стоимостью. Напротив, спецификация типа "серый ящик" функциональна, что бы представить концепции параллельности, временные ограничения и взаимодействия на абстрактном или более детальном уровне, в зависимости от того, что требуется для выполнения досконального исследования последствий принятых решений. Авторы утверждают, что управление параллельностью задач может быть разработано за 4 главных шага. 1. Строится модель "серый ящик", включая указние необходимой параллельности. 2. К специфицированным MTG-CDFG описаниям применяются трансформации для увеличения возможностей исследования параллельности и уменьшения стоимости. 3. Статическое планирование применяется к частям, анализируемым во время проектирования, включая назначение процессоров в различные процессорные контексты. 4. Динамический планировщик планирует конструкции во время выполнения на данную платформу, подыскивая компромисс основывающийся на кривых Парето. Основной двигатель данной работы процесс разработки реального устройства MPEG-4 IM1 player. Экспериментальные результаты подтверждают обоснованность предположеий и полезность предлагаемого подхода. SOC стали реальностью, а недавно появились также и реконфигурируемые устройства. Однако, по мнению авторов работы [35], все еще недостаточно усилий было предпринято, что бы создать методологии и алгоримты совместного проектирования программного и аппаратного обеспечения, которые были бы эффективны при проектировании реконфигурируемых устройств. В статье [35] авторы излагают свой подход к решению указанной проблемы и представляют новый алгоритм разбиения на части аппаратное/программное обеспечение для динамически рекофигурируемых архитектур. Это конструктивный алгоритм, который получает начальное решение и затем пытается его оптимизировать. Разбиение на HW/SW выполняется с учетом свойств динамически реконфигурируемых устройств и его конечная цель - минимизировать время реконфигурации. Разделяющий алгоритм был разработан и интегрирован в авторскую среду совместного проектирования HW/SW, где были выполнены некоторые эксперименты. Полученные результаты демонстрируют преимущества данного алгоритма. 4.4. IP-компоненты Повторное использование IP (Intellectual Property) - это один из наиболее многообещающих методов решения проблемы сложности проектов. IP reuse предполагает, что ранее сроектированные компоненты могут быть интегрированы в новый проект, сокращая таким образом сложность проекта и время на его разработку. С другой стороны, количество IP провайдеров растет и выбор наиболее подходящего для данного проекта IP блока становится все более трудоемкой и времязатратной задачей. В статье [36] представлена система автоматического поиска IP-компонент с помощью Internet. Система базируется на XML (Extensible Markup Language) описаниях IP библиотек (репозиториях IP компонент, индексированных по их описаниям), и запросов пользователей на поиск IP компонент (с неполными/недоопределенными атрибутами). IP запрос преобразуется в DOM (Document Object Model), затем DOM трансформируется во внутреннюю древовидную модель. Что бы обеспечить поиск максимально подходящих IP компонент, используются методы нечеткой логики. В работе [37] представлена универсальная коммуникационная модель, выполненная на основе VCC (Virtual Component Co-Design. UCM (Universal Communication Model) определена на уровне абстракции, позволяющем аккуратно оценивать производительность с учетом задержек на шине с хорошей скоростью симуляции. Ее можно использовать для моделирования различных протоколов коммуникации. 4.5. Проектирование, ориентированное на сокращение энергопотребления Турбо-декодирование предлагает выдающиеся возможности по коррекции ошибок, которые будут использованы в беспроводных приложениях, таких как UMTS(Universal Mobile Telecom Standard). Однако алгоритм турбо-декодирования требует значительного количества вычислений, и потому разработка его на программируемом DSP общего назначения приводит к значительному потреблению энергии, что уменьшает возможности применения такого подхода в "наручных" устройствах. В работе [38] авторы представляют решение, основанное на многослойной архитектуре. Эта архитектура включает специализированный VLIW-процессор; процессор, управляемый потоком данных; и аппаратные исполнительные устройства, организованные иерархически. Потребление энергии в таком решении на порядок меньше, чем при использовании самых микропотребляющих DSP общего назначения. Во многих приложениях важно знать, как потребляется энергия в то время, когда ПО исполняется на целевом процессоре. Микроанализ потребления энергии на уровне инструкций использует метод [39], который состоит в поцикловой симуляции, генерации меток инструкций и их распространении, для ответа на такие вопросы в суперскалярных и конвейрных процессорах. Такой метод требует анализа CPU на уровне микроархитектуры и обеспечивает измерение потребления энергии на каждом модуле(вентиле) для каждой активной инструкции в каждом цикле. Для проверки такого подхода был спроектирован Zilog DSP с использованием библиотеки ячеек TSMC в технологии 0.25 мк, и было собрано потребление энергии на каждой инструкции с использованием Verilog симулятора, специально написанного для этого Zilog DSP. Интенсивные обращения к памяти порождают большие проблемы в потреблении энергии и производительности встроенных систем. Традиционно, локальная память основывается на огромном кэше, для хранения всех переменных приложения. Однако, особенно в реальных больших приложениях, различные типы данных проявляют различную локальность. Варьируются также и способы доступа, с различными потребностями в локальности и пропускной способности. Традиционные кэши должны обеспечивать компромисс между различными типами локальности, требуемыми для различных способов доступа, а также компромисс между требованиями производительности и пропускной способности. Предлагаемый авторами [40] подход корректирует архитектуру локальной памяти в сторону большего соответствия различных способов доступа и типа локальности в приложении, для того что бы уменьшить основные требования к пропускной способности памяти, и значительно сократить потребление энергии без ущерба для производительности. Такой подход обеспечил сокращение потребления энергии на 30% без деградации производительности на множестве больших мультимедиа приложений по сравнению с наилучшими кеш-конфигурациями аналогичного размера. В работе [41] авторы предлагают сокращение потребления энергии за счет устранения лишних чтения/записи из/в регистрового файла переменных с коротким временем жизни (всего несколько инструкций). Эксперимент показал сокращение потребления энергии на 35%. Накладные расходы - задержка одного вентиля в критическом пути процессора. Статья [42] посвящена проблеме сокращения потребления энергии в системах обработки потоков мультимедиа информации. Для иллюстрации подхода алгоритм MPEG-3 реализован на StrongARM 1100. Работа [43] представляет факторизационный метод сокращения вычислительной сложности цифровых FIR-(Finite Impulse Response)- фильтров. Покаказывается, что возможно спроектировать FIR-фильтр, все коэффициенты которого являются произведениями первых семи простых чисел. Для таких фильтров, факторизация их коээфициентов позволяет повторное использование промежуточных результатов во время вычислений общих множителей. Поскольку коэффициенты являются произведениями очень маленьких простых чисел, возможно генерировать частичные произведения с помощью операций сдвига и сложения. В сравнении с обычными методами, данный подход обеспечивает сокращение на 35-50% вычислительной сложности, которое трансформируется в сокращение потребления энергии. В статье [44] представлена система проектирования микропотребляющих SOC, от системного уровня, в предположении что SOC базируется на повторно используемых компонентах, таких как процессоры, блоки памяти и периферийные устройства. Статья [45] представляет собой более точный подход к оценке производительности и потреблению энергии на системном уровне на базе детальных сведений об аппаратных ресурсах. 4.6. Тестирование и самотестирование SOC Спецификации на разработку и экономические требования вынуждают размещать на чипе компоненты для тестирования. Однако оптимальное разделение функциональности тестирования между тестером и чипом - это не тривиальная задача, которая должна быть решена при проектировании на системном уровне. На этом этапе должны быть оценены различные схемы разделения. Цель работы [46] - представить методологию и средства, использующие ООП и UML, а также множество метрик качества архитектуры, обеспечивающие анализ различных схем TRP (Test Resource Partitioning) на архитектуру системы. Приводится пример апробации метода и средств на SOC-системе, включающей 4 компоненты. В работе [47] введена детерменированная программная методология самотестирования ядра процессора, которая эффективно тестирует модули обработки данных (datapath) без модификации архитектуры процессора. Это гарантирует высокую степень "покрытия неисправностей", без повторяющихся симуляционных экспериментов, используемых при псевдослучайных программных подходах к самотестированию. Генерация тестов и анализ результатов осуществляется с использованием функциональных модулей процессора, таких как аккумуляторы (арифметическая часть АЛУ) и сдвигатели (если они имеются) с помощью процессорных инструкций. При этом не требуется дополнительных аппаратных ресурсов и не снижается производительность. Тестирование IP-компонент на SOC требует больших объемов данных, которые должны быть сохранены во внешнем оборудовании для автоматического тестирования (ATE - automatic test equipment), а также предопределяет необходимость высокоскоростного обмена информацией между ATE и тестируемым чипом, что требует построения ATE с соответствующей производительностью. Статья [48] описывает, как сократить эти требования использованием встроенного CPU во время режима тестирования, как встроенного тестера. Поскольку используется только функциональность CPU ядра, можно использовать ядра всех типов: "hard, firm, soft". Тестирование - одна из основных проблем SOC-разработки и производства. Популярное решение для SOC, которые включают микропроцессорные ядра, базируется на выполнении ими тестирующих программ. В работе [49] описывается метод генерации эффективных программ для самотестирования процессора. Метод может быть частично автоматизирован. Он комбинирует идеи традиционого функционального подхода и ATPG (Automatic Test Pattern Generation). Приводится оценка реализуемости и эффективности метода применением его к ядру 8051. Виртуальное тестирование (VT) [50] - это новый метод, обеспечивающий сокращение времени выхода на рынок, особенно для SOC-продуктов, которые содержат сложные цифровые и аналоговые блоки. VT позволяет отлаживать тестовые программы в среде симуляции, в том случае, если доступны быстрые и точные модели IC. Поведенческие VHDL модели становятся все более привлекательным подходом как для разработчиков чипов, так и для инженеров- тестовиков. Компромиссы между затратами на моделирование, производительностью симуляции и точностью результатов при использовании виртуального тестирования описываются на конкретном промышленном примере. В работе [51] авторы предлагают среду для тестирования SOC, которая включает множество алгоритмов проектирования, включая планирование тестов, проектирование механизмов доступа к тестам, выбор наборов тестов, распараллеливание тестов, размещение тестовых ресурсов. Данный подход минимизирует время и стоимость разработки тестов с учетом ограничений на тесты, потребление энергии, тестовые ресурсы. Главная особенность такого подхода состоит в том, что он обеспечивает интегрированную среду решения нескольких задач одновременно, которые традиционно рассматривались как различные. Экспериментальные результаты показывают эффективность и полезность предлагаемого метода. Заключение Прошедшая конференция/выставка DATE 2001 показала высокую динамику развития средств автоматизации проектирования, верификации и отладки SOC-систем. В то же время поставлен ряд проблем, которые все еще требуют своего разрешения. Желающие более подробно ознакомиться с материалами DATE 2001 могут обратиться к соответсвующему сайту: http://www.date-conference.com Литература 1. G. Matheron "Electronic System Design Methodology: Europe's Positioning", Proceedings of DATE 2001, Munich, Germany,p.720-721 2. T. Beck "Current Trends in the Design of Automotive Electronic Systems", Proceedings of DATE 2001, Munich, Germany, p.38-39 3. G. Hettich, T. Thurner "Vehicle Electric/Electronic Architecture - One of the Most Important Challenges for OEM's", Proceedings of DATE 2001, Munich, Germany,p.112-114 4. A.Panday, D. Couderc, S. Marichalar "AIL: description of a global electronic architecture at the vehicle scale", Proceedings of DATE 2001, Munich, Germany,p.115-117 5. P. Paulin "Network Processors: A Perspective on Market Requirements, Processor Architectures and Embedded S/W Tools" Proceedings of DATE 2001, Munich, Germany,p.115-120 6. H. Tago, K. Hashimoto, N. Ikumi, M. Nagamatsu, M. Suzuoki, Y. Yamamoto "CPU for PlayStation2", Proceedings of DATE 2001, Munich, Germany,p.696-697 7. A. Mandapati "Implementation of the ATI Flipper Chip" Proceedings of DATE 2001, Munich, Germany, p.697-698 8. S. Narita "SH-4 RISC Microprocessor for Multimedia, Game Machine", Proceedings of DATE 2001, Munich, Germany,p.699-701 9. R. Wilson "Managing the SoC Design Challenge with "Soft" Hardware", Proceedings of DATE 2001, Munich, Germany, p.610-611 10. R. Hartenstein "A Decade of Reconfigurable Computing: A Visionary Retrospective", Proceedings of DATE 2001, Munich, Germany, p.642-650 11. Z. Huang, S. Malik "Managing Dynamic Reconfiguration Overhead in Systems-On-A-Chip Design Using Reconfigurable Datapaths and Optimized Interconnection Networks", Proceedings of DATE 2001, Munich, Germany, p.735-742 12. R. Camposano "The Programmable Platform: Does One Size Fit All?", Proceedings of DATE 2001, Munich, Germany, p.226-235 13. P. Clarke "Standard Bus vs. Bus Wrapper: What is the Best Solution for Future SoC Integration?", Proceedings of DATE 2001, Munich, Germany, p.776-777 14. G. Cichon, W. Bunnbauer "Annotated Data Types for Addressed Token Passing Networks", Proceedings of DATE 2001, Munich, Germany, p.801-802 15. G. Bertoni, L. Breveglieri, P. Fragneto "Efficient Finite Field Digit-Serial Multiplier Architecture for Cryptography Applications", Proceedings of DATE 2001, Munich, Germany, p. 812-814 16. M. Bekooij, L. Engels, A. van der Werf, N. Busс "Functional Units with Conditional Input/Output Behavior in VLIW Processors" Proceedings of DATE 2001, Munich, Germany, p.822-826 17. A. Hoffmann, A. Nohl, S. Pees, G. Braun, H. Meyr "Generating Production Quality Software Development Tools Using a Machine Description Language", Proceedings of DATE 2001, Munich, Germany, p. 674-678 18. A. Terechko, E. Pol, J. van Eijndhoven "PRMDL: A Machine Description Language for Clustered VLIW Architectures", Proceedings of DATE 2001, Munich, Germany, p. 821-827 19. L. Gauthier, S. Yoo, A. Jerraya "Automatic Generation and Targeting of Application Specific Operating Systems and Embedded Systems Software", Proceedings of DATE 2001, Munich, Germany, p. 679-688 20. J. Moya, F. Moya, J. Lєpez "A Hardware-Software Operating System for Heterogeneous Designs", Proceedings of DATE 2001, Munich, Germany, p.820-821 21. L. Charest, M. Reid, E. Aboulhamid, G. Bois "A Methodology for Interfacing Open Source SystemC with a Third Party Software" Proceedings of DATE 2001, Munich, Germany, p.16-20 22. G. Economakos, P. Oikonomakos, I. Panagopoulos, I. Poulakis, G. Papakonstantinou "Behavioral Synthesis with SystemC", Proceedings of DATE 2001, Munich, Germany, p. 21-25 23. R. Siegmund, D. Miller "SystemC SV - An Extension of SystemC for Mixed Multi-Level Communication Modeling and Interface-Based System Design", Proceedings of DATE 2001, Munich, Germany, p. 26-33 24. J. Ruf, D. Hoffmann, J. Gerlach, T. Kropf, W. Rosenstiehl, W. Mueller "The Simulation Semantics of SystemC", Proceedings of DATE 2001, Munich, Germany, p.64-70 25. K. Svarstad, G. Nicolescu, A. Jerraya "A Model for Describing Communication between Aggregate Objects in the Specification and Design of Embedded Systems", Proceedings of DATE 2001, Munich, Germany, p.77-91 26. E. Villar "C/C++ : Progress or Deadlock in System-Level Specification", Proceedings of DATE 2001, Munich, Germany, p.136-137 27. K. Hering, J. Lyser, J. Markwardt "dlbSIM - A Parallel Functional Logic Simulator Allowing Dynamic Load Balancing", Proceedings of DATE 2001, Munich, Germany, p.472-487 28. J. Zhu "MetaRTL: Raising the Abstraction Level of RTL Design" Proceedings of DATE 2001, Munich, Germany, p.71-76 29. A. Nayak, M. Haldar, A. Choudhary, P. Banerjee "Precision and Error Analysis of MATLAB Applications during Automated Hardware Synthesis for FPGAs", Proceedings of DATE 2001, Munich, Germany, p.722-728 30. J. Jung, S. Yoo, K. Choi "Performance Improvement of Multi- Processor Systems Cosimulation Based on SW Analysis", Proceedings of DATE 2001, Munich, Germany, p.749-753 31. A. Hoffmann, T. Kogel, H. Meyr "A Framework for Fast Hardware- Software Co-Simulation", Proceedings of DATE 2001, Munich, Germany, p.760-761 32. J. Ruf, D. Hoffmann, T. Kropf, W. Rosenstiel "Simulation- Guided Property Checking Based on a Multi-Valued AR-Automata", Proceedings of DATE 2001, Munich, Germany, p.742-748 33. A. Baghdadi, D. Lyonnard, N. Zergainoh, A. Jerraya "An Efficient Architecture Model for Systematic Design of Application-Specific Multiprocessor SoC", Proceedings of DATE 2001, Munich, Germany, p.55-62 34. C. Wong, P. Marchal, P. Yang, F. Catthoor, H. De Man, A. Prayati, N. Cossement, R. Lauwereins, D. Verkest "Task Concurrency Management Methodology Summary", Proceedings of DATE 2001, Munich, Germany, p.813-814 35. J. Noguera, R. Badia "A HW/SW Partitioning Algorithm for Dynamically Reconfigurable Architectures", Proceedings of DATE 2001, Munich, Germany, p.729-734 36. T. Zhang, L. Benini, G. De Micheli "Component Selection and Matching for IP-Based Design", Proceedings of DATE 2001, Munich, Germany, p.40-46 37. T. Demmeler, P. Giusto "A Universal Communication Model for an Automotive System Integration Platform", Proceedings of DATE 2001, Munich, Germany, p.47-48 38. J. Dielissen, J. van Meerbergen, M. Bekooij, F. Harmsze, S.Sawitzki, J. Huisken, A. van der Werf "Power-Efficient Layered Turbo Decoder Processor", Proceedings of DATE 2001, Munich, Germany, p.246-251 39. C. Hsieh, L. Chen, M. Pedram "Microprocessor Power Analysis by Labeled Simulation", Proceedings of DATE 2001, Munich, Germany, p.182-208 40. P. Grun, N. Dutt, A. Nicolau "Access Pattern Based Local Memory Customization for Low Power Embedded Systems, Proceedings of DATE 2001, Munich, Germany, p.778-784 41. M. Sami, D. Sciuto, C. Silvano, V. Zaccaria, R. Zafalon "Exploiting Data Forwarding to Reduce the Power Budget of VLIW Embedded Processors", Proceedings of DATE 2001, Munich, Germany, p.252-267 42. A. Acquaviva, L. Benini, B. Riccє "An Adaptive Algorithm for Low-Power Streaming Multimedia Processing", Proceedings of DATE 2001, Munich, Germany, p.273-280 43. C. Neau, K. Muhammad, K. Roy "Low Complexity FIR Filters Using Factorization of Perturbed Coefficients", Proceedings of DATE 2001, Munich, Germany, p.268-272 44. C. Piguet, M. Renaudin, T. Omnшs "Low-Power Systems on Chips (SOCs)", Proceedings of DATE 2001, Munich, Germany, p.488-596 45. A. Doboli "Integrated Hardware-Software Co-Synthesis and High-Level Synthesis for Design of Embedded Systems under Power and Latency Constraints", Proceedings of DATE 2001, Munich, Germany, p.612-618 46. P. Prinetto "Test Resource Partitioning: A Design and Test Issue", Proceedings of DATE 2001, Munich, Germany, p.34-40 47. A. Paschalis, D. Gizopoulos, N. Kranitis, M. Psarakis, Y. Zorian "Deterministic Software-Based Self-Testing of Embedded Processor Cores", Proceedings of DATE 2001, Munich, Germany, p.92-111 48. R. Dorsch, H. Wunderlich "Using Mission Logic for Embedded Testing", Proceedings of DATE 2001, Munich, Germany, p.805-806 49. F. Corno, M. Sonza Reorda, S. Squillero, M. Violante "On the Test of Microprocessor IP Cores", Proceedings of DATE 2001, Munich, Germany, p.209-225 50. M. Rona, G. Krampl "Modelling SoC Devices for Virtual Test Using VHDL", Proceedings of DATE 2001, Munich, Germany, p.770-771 51. E. Larsson, Z. Peng "An Integrated System-On-Chip Test Framework", Proceedings of DATE 2001, Munich, Germany, p.138-147 http://newit.gsu.unibel.by